/**
 * gltf模型类demo案例
 */

import * as Cesium from "cesium";
import * as EasyCesium from "@xhymf1992/easy-cesium";

export async function drawGltfModel() {
    // let position = Cesium.Cartesian3.fromDegrees(121.56119595297187,25.034501496489753,149.6396171612431);
    let position = Cesium.Cartesian3.fromDegrees(121.56119595297187,25.034501496489753,160);
        
    let options = {
        id: "model-entity", // entity对象id，具有唯一性，必填
        name: "model-entity", // entity的名称，可选，默认为空
        show: true, // 是否显示，可选，默认显示
        position: position, // 模型坐标，必填
        url: "https://hz.gridworld.com.cn:50443/te3/di/get_file/Alpaca.gltf/", // 模型链接，必选
        // url: "https://hz.gridworld.com.cn:50443/te3/di/get_file/Cesium_Man.glb/",
        scale: 1, // 模型缩放大小，可选，默认为1
        minimumPixelSize: 0.0, // 模型最小像素大小，可选，默认为0
        clampAnimations: true, // 在没有关键帧的持续时间内是否保持最后一个动作，可选，默认为true
        heightReference: 1, // 高程类型：0-海拔；1-贴在地表或3dtiles；2-相对于地表或3dtiles；3-贴在地表；4-相对于地表；5-贴在3dtiles；6-相对于3dtiles，可选，默认为0
        color: "rgba(255,255,255,1.0)", // 模型颜色，该颜色将与模型自身的颜色进行混合，可选，默认为白色
        colorBlendMode: 0, // 混合模式：0-高亮（颜色相乘）；1-替换（覆盖原有颜色）；2-比例混合. 可选，默认为0
        colorBlendAmount: 0.5, // 混合模式为2时，该值表示输入颜色的占比(0.0-1.0)，当为1时为覆盖. 可选，默认为0.5
        silhouetteColor: "rgba(255,0,0,1)", // 轮廓的颜色，可选，默认为红色
        silhouetteSize: 0.0, // 轮廓大小，可选，默认为0 (不显示轮廓)
        viewer: window.viewer // cesium视图对象，必填
    };

    // @ts-ignore
    window.model = new EasyCesium.GltfModel(options);
    // @ts-ignore
    await window.model.init();
    // @ts-ignore
    window.model.flyTo();

    // 切换模型动画
    // @ts-ignore
    window.model.animationIndex = 0;
    // @ts-ignore
    window.model.animationIndex = 1;

    // 修改动画播放倍速
    // @ts-ignore
    window.model.animationMultiplier = 2.0;
    // @ts-ignore
    window.model.animationMultiplier = 0.5;

    // // 切换模型显隐
    // window.model.show = false;
    // window.model.show = true;

    // // 修改模型缩放比例
    // window.model.scale = 5;

    // // 修改轮廓宽度和颜色
    // window.model.silhouetteSize = 1.0;
    // window.model.silhouetteColor = "rgba(255,255,0,1)";

    // // 修改模型颜色
    // window.model.color = "rgba(255,255,0,1)";

    // // 修改模型混合模式
    // window.model.colorBlendMode = 0;
    // window.model.colorBlendMode = 1;
    // window.model.colorBlendMode = 2;

    
    // // 销毁
    // window.model.destroy();
}